package main

import "fmt"

//func main() {
//	var a interface{}
//	var b int
//	a = b
//	c := a.(int)
//	fmt.Printf("%d %T %T\n",c,c,a)
//}

//func Test(a interface{}){
//	b,ok := a.(int)
//	if ok {
//		b += 3
//		fmt.Println(b)
//	}else {
//		fmt.Println("convert failed")
//	}
//}

//func main() {
//	var b int
//	Test(b)
//}

func main() {
	classifier("a",1,false,true)
}

func classifier(items ...interface{}) {
	for i,x := range items{
		switch x.(type) {
		case int:
			fmt.Printf("%d params is int , valuue is %v \n",i,x)
		case float32:
			fmt.Printf("%d params is float32 , valuue is %v \n",i,x)
		case float64:
			fmt.Printf("%d params is float64 , valuue is %v \n" ,i,x)
		case bool:
			fmt.Printf("%d params is bool , valuue is %v \n",i,x)
		case int64:
			fmt.Printf("%d params is int64 , valuue is %v \n",i,x)
		case string:
			fmt.Printf("%d params is string , valuue is %v \n",i,x)

		}
	}
}